<?php

//     '空闲' => '空闲',
//     '已预订' => '已预订',
//     '已入住' => '已入住',
//     '已退房' => '已退房',
//     '清洁中' => '清洁中'


// 获取指定房间号的房间对象
// 获取通过Ajax发送的房间id
$room_id = $_POST['rooms_id'];
// 检查房间id是否有效
if (!empty($room_id)) {
    // 根据房间id进行状态切换操作
    $room = getRoomById($room_id);
    // 检查是否找到了对应的房间
    if ($room) {
        // 修改房间状态
        changeRoomStatus($room);
        // 返回响应消息
        echo '成功修改房间状态';
    } else {
        echo '找不到指定的房间';
    }
} else {
    echo '无效的房间id';
}


function getRoomById($room_id)
{
    // 创建 PDO 实例
    require_once 'databaseConnection.php';
    $dbConn = connectToDatabase();
    // 查询数据库获取房间对象
    $sql = "SELECT * FROM rooms WHERE rooms_id = :room_id";
    $stmt = $dbConn->prepare($sql);
    $stmt->bindParam(':room_id', $room_id, PDO::PARAM_INT);
    $stmt->execute();
    // 检查是否找到了房间
    if ($stmt->rowCount() > 0) {
        $room = $stmt->fetch(PDO::FETCH_ASSOC);
        return $room;
    } else {
        return null; // 找不到房间，返回null
    }
}


// 修改房间状态的函数，与前端代码中的函数一致
function changeRoomStatus($room)
{
    // 定义状态选项数组
    $roomStatusOptions = ['空闲', '已预订', '已入住', '已退房', '清洁中'];
    // 查找当前状态在选项数组中的索引
    $currentIndex = array_search($room['roomStatus'], $roomStatusOptions);
    // 计算下一个状态的索引
    $nextIndex = ($currentIndex + 1) % count($roomStatusOptions);
    // 更新房间状态
    $room['roomStatus'] = $roomStatusOptions[$nextIndex];
    // 配置数据库连接信息
    // 创建 PDO 实例
    require_once 'databaseConnection.php';
    $pdo = connectToDatabase();

    // 更新数据库中的房间状态
    $sql = "UPDATE rooms SET roomStatus = :roomStatus WHERE rooms_id = :room_id";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':roomStatus', $room['roomStatus'], PDO::PARAM_STR);
    $stmt->bindParam(':room_id', $room['rooms_id'], PDO::PARAM_INT);
    if ($stmt->execute()) {
        // 更新成功
    } else {
        echo '更新房间状态失败';
    }
}






